package com.developpez;

import org.hibernate.Query;
import org.hibernate.Session;
import java.util.*;

import com.developpez.domain.Utilisateur;
import com.developpez.util.HibernateUtil;

public class UtilisateurManager {


    /*public static void main(String[] args) {
    	UtilisateurManager mgr = new UtilisateurManager();

        if (args[0].equals("store")) {
            mgr.enregistrer("Utilisateur", new Date(), "toto@gmail.com", "91240");
        }
        else if (args[0].equals("list")) {
            List <Utilisateur> users = mgr.listUtilisateurs();
            for (int i = 0; i < users.size(); i++) {
                Utilisateur user = users.get(i);
                System.out.println(
                        " Utilisateur: " + user.getPseudo() + 
                        "\n Date d'inscription: " + user.getDateInscription() +
                        "\n Mail: " + user.getMail()+
                        "\n Code Postale: "+ user.getCodePostal()
                );
            }
        }

        HibernateUtil.getSessionFactory().close();
    }*/

    public List<Utilisateur> listUtilisateurs() {
    	Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        List<Utilisateur> result = session.createQuery("from Utilisateur").list();
        session.getTransaction().commit();
        return result;
	}

	public void supprimer(Utilisateur userModel) {
        
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.delete(userModel);

        session.getTransaction().commit();
    }
	
	public void saveOrUpdate(Utilisateur userModel) {
        
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
               
        session.saveOrUpdate(userModel);

        session.getTransaction().commit();
    }

	public Utilisateur rendreDeveloppeurById(int identifiant) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
         Query requete = session.createQuery("from Utilisateur where identifiant = :identifiant");
         requete.setParameter("identifiant", identifiant);
         Utilisateur result= (Utilisateur) requete.uniqueResult();
        session.getTransaction().commit();
        return result;
		
	}

}